MATLAB 复习
基础
- A = [1,2,3; 4,5,6; 7,8,9]
- 初始值 : 步长 : 终止值 (其中包括起始值和终止值)
- 字符串用==单引号==括起来( ' 用两个单引号 '' 转义)
函数复习
- linspace(x, y, z) : 生成行向量 ( x 为首元素,y 为末元素,z 为个数)
- reshape(A, m, n) : 改变矩阵形状
- rem (a, b) : 取余
- fix (a) : 向==零方向==取整
- floor(a) : 向==负无穷方向==取整
- ceil(a) : 向==正无穷方向==取整
- log(a) : ==自然对数==
- exp(a) : 自然指数
- find(a) : 找非零元素的位置
- length(a) : 求长度
- ==zeros(a) : 产生全 0 矩阵==
- ==ones(a) : 产生全 1 矩阵==
- ==eye(a) : 单位阵==
- rand(num) : 产生 (0, 1) 区间均匀分布的随机矩阵,num为阶数
- eg : x = 20+(50-20)*rand(5)
- diag(A[ , num]) : 提取矩阵的对角线元素;构造对角阵
- 提取主对角线元素形成列向量,主对角线以上记为正数,以下记为负数,num 即为哪条对角线
- 构造对角阵同理,但 A 必须要为行向量
- triu(A[ , num]) : 上三角阵,与上同理
- tril(A[ , num]) : 下三角阵,与上同理
- A' : 共轭转置
- A.' : 转置 (实数范围内,共轭转置和转置结果一样)
- ==inv(A) : 矩阵求逆==
- ==det(A) : 求方阵对应行列式的值==
- ==rank(A) : 矩阵求秩==
- ==trace(A) : 矩阵求迹==(迹为矩阵对角线元素之和,也等于矩阵的特征值之和)
- norm(V[ , 1 / 2 or null / inf ]) : 求 1-范数,2-范数和无穷大范数
- cond(A[ , 1 / 2 or null / inf ]) : 求在 1-范数,2-范数和无穷大范数下的条件数
- eig(A) : 求矩阵的全部特征向量
- A = input ( '提示信息' [, 's' ]);
- 如果要输入字符串就加上后面的 's' 选项
- disp(a) : 输出内容
- pause(延迟秒数) : 暂停程序
- ==plot(x, y)== : 以 x, y 为横纵坐标绘制二维曲线,其中 x, y 为长度相同的向量
- 当 x, y 为同型矩阵时,则以 x, y 对应列元素为横纵坐标绘制,曲线条数等于矩阵列数
- 可以输入多组 x, y 以绘制多条曲线,跟在前一组可选参数后面
- 可选参数:
-. : --
实线(默认值) 点画线 虚线 双划线 b (blue) 蓝色
g (green) 绿色
r (red) 红色
c (cyan) 青色
m (magenta) 品红
y (yellow) 黄色
k (black) 黑色
w (white) 白色 . 点
o (字母) 圆圈
x (字母) 叉号
+ 加号
* 星号
s ( square ) 方块
d ( diamond ) 菱形
v (字母) 朝下三角
^ 朝上三角
< 朝左三角
> 朝右三角
p ( pentagram ) 五角星
h ( hexagram ) 六角星
- plotyy(x1, y1, x2, y2) : 双纵坐标函数
- title(图形名称) 图形标注
- xlabel(x 轴说明) 图形标注
- ylabel(y 轴说明) 图形标注
- text(x, y, 图形说明) 图形标注
- legend(图例1, 图例2, ...) 图形标注,图例即介绍线型和作用的,类似于地图
hold on;
hold off;
作用即控制是否保持原有图形还是刷新原有图形
- subplot(m, n, p) : 将窗口分割成 m x n 个绘图区,m 行,每行 n 个,依次编号,选中第 p 个区域
- fplot(filename, lims, 选项) : 自适应采样绘图
- filename : 代表一个函数,通常采用函数句柄的形式,也可以是字符串形式
- lims : x 轴的取值范围,取二元向量 [xmin, xmax] , 默认值为 [-5, 5]
- polar(theta, rho, 选项) : 极坐标绘图
- theta : 极坐标极角
- rho : 极坐标极径
- ==其他形式二维图形暂不列出==
- plot3(x, y, z, 选项) : 绘制三维曲线
- 三维曲面绘制函数
- meshgrid(x, y) : 生成平面网格坐标矩阵,其中 x, y 为冒号表达式或者行向量
- mesh(x, y, z, c) : x, y, z 为同型矩阵,x, y 是网格坐标矩阵,z 是网格高度矩阵,c 为色标矩阵用于指定曲面颜色,c有默认值,输入时可以不予指定。在不需要绘制特别精细的三维曲面图时,可以通过三维网格图表示三维曲面
- surf(x, y, z, c) : x, y, z, c 与上同理,各线条之间的补面用颜色填充
- ==其他形式三维图形暂不列出==
- ezplot(f [, a, b] ) : f 为一个函数 y=f(x) ,可选参数 a, b 为 x 的区间,如果要设定 y 的区间,跟在 x 的区间后面即可,默认区间为 -2π < x < 2π 。其中 f 可以为函数文件名或者函数表达式组成的字符串
运算复习
-
-
- *
- (左除)
- / (右除)
- <
- <=
- >
- >=
- ==
- ~= (不等于)
- ^ (乘方)
- &
- |
- ~
- xor (异或)
- 点运算
流程控制
- if 结构:
if 条件
语句组
end if 条件
语句组1
else
语句组2
end if 条件1
语句组1
elseif 条件2
语句组2
……
else
语句组n
end
不需要像 python 那样条件后面跟冒号,也不需要大括号,最后要有 end 标识。
- switch 结构:
switch 表达式
case 结果表1
语句组1
case 结果表2
语句组2
……
case 结果表n
语句组n
otherwise
语句组n
end
- for 结构:
for 循环变量=表达式1 : 表达式2 : 表达式3
循环体语句
end
表达式块为一个冒号表达式,产生一个行向量,如果有行向量矩阵可供直接使用,那么将同该行向量的效果一样,将行向量里的每一个元素代入到循环体语句中执行,知道该行向量元素循环完毕。
- while 结构:
while 条件
循环体语句
end
- break 和 continue :与其他编程语言中效果相同
文件
- 格式:
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句
- 函数文件名一般跟函数名相同。如果不一致,调用则直接使用函数名;
- 有 return 语句;
- 有递归调用;
- 匿名函数格式:
函数句柄变量=@(匿名函数输入参数) 匿名函数表达式
函数句柄变量:相当于函数别名,可以通过其间接调用函数
@:创建函数句柄的运算符